﻿using IQReportes.Models;
using IQReportes.Models.Logica;
using IQReportes.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace IQReportes.ViewModels
{
    public class PerfilViewModel
    {
        public string id { get; set; }
        [DisplayName("Nombre")]
        [RangoLongitud(5, 20)]
        [Required]
        public string nombre { get; set; }

        [DisplayName("Descripción")]
        [RangoLongitud(5, 50)]
        [Required]
        public string descripcion { get; set; }

        public bool admin { get; set; }
        
        public int cantidadUsuarios { get; set; }
        public List<ModuloInfoViewModel> moduloTx { get; set; }
        public List<ModuloInfoViewModel> moduloPC { get; set; }

        public PerfilViewModel() {
            LogicaModulo logicaModulo = new LogicaModulo();
            moduloTx = logicaModulo.getNuevaLista(1);
            moduloPC = logicaModulo.getNuevaLista(2);
        }

        public PerfilViewModel(Perfil perfil)
        {
            this.id = perfil.idPerfil + "";
            this.nombre = perfil.vcNombre;
            this.descripcion = perfil.vcDescripcion;
            this.admin = perfil.bAdmin;
            this.cantidadUsuarios = perfil.inCantidadUsuarios;

            moduloTx = new List<ModuloInfoViewModel>();
            moduloPC = new List<ModuloInfoViewModel>();
        }


        public Perfil extract()
        {
            Perfil p = new Perfil();
            p.idPerfil = (this.id == null) ? -1 :Int32.Parse(this.id);
            p.vcNombre = this.nombre;
            p.vcDescripcion = this.descripcion;
            p.inCantidadUsuarios = this.cantidadUsuarios;
            p.bAdmin = this.admin;
            return p;
        }
    }
}